<?php

/**
 * 
 */
class MesphotosController extends AppController {
    
    var $paginate = array(
        'limit' => 20,
        'order' => "Mesphoto.date DESC",
        'fields' => array('Mesphoto.fichier','Mesphoto.nom'),
    );
    
    function index(){
        
        $utilisateur = $this -> Session -> read('Auth.Utilisateur');
        
        $fichier = $this -> paginate('Mesphoto',array(
            'Mesphoto.utilisateur_id' => $utilisateur["id"]
        ));
        
        $this -> set('photo', $fichier);
        
        
    }
    
    function upload(){
        
        $utilisateur = $this -> Session -> read('Auth.Utilisateur');
        
        // verification du type de fichier
        $dossier = '../webroot/img/photos/tmp/';
        $fichier = basename($_FILES['fichier_upload']['name']);
        $taille_maxi = 200000;
        $taille = filesize($_FILES['fichier_upload']['tmp_name']);
        $extensions = array('.png', '.gif', '.jpg', '.jpeg');
        $extension = strrchr($_FILES['fichier_upload']['name'], '.'); 
        
        //Début des vérifications de sécurité...
        if(!in_array($extension, $extensions)) {
            
            $this -> Session -> setFlash("Extension de fichier interdite","erreur");
            $this -> redirect(array("controller" => "mesphotos","action" => "index"));
            
        }
         
        if($taille>$taille_maxi){
            
            $this -> Session -> setFlash("Le fichier est trop gros","erreur");
            $this -> redirect(array("controller" => "mesphotos","action" => "index"));
            
        }
        
        if(!isset($erreur)){
            
            //On formate le nom du fichier ici...
            $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
           $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
           
           
           
            if(move_uploaded_file($_FILES['fichier_upload']['tmp_name'], $dossier . $fichier)){
                
                //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
                // je verifie que le fichier n'existe pas déjà
                $md5Fichier = md5_file($dossier.$fichier);
                $fichierMd5Sql = $md5Fichier.$extension;
                
                // verification que l'image n'est pas déjà dans BDD
                $exist = $this -> Mesphoto -> find("first",array(
                    'conditions' => array(
                        'Mesphoto.fichier' => $fichierMd5Sql
                    ),
                    'fields' => 'Mesphoto.fichier'
                ));
                if (isset($exist) == true && $exist != array()){
                    
                    unlink($dossier.$fichier);
                    $this -> Session -> setFlash("L'image a déjà été uploadée !","erreur");
                    $this -> redirect(array("controller" => "mesphotos","action" => "index"));
                    
                                 
                }
                
                if (file_exists("../webroot/img/photos/".$md5Fichier.$extension) == false){
                    
                    copy($dossier.$fichier,"../webroot/img/photos/".$md5Fichier.$extension);
                    $fichierMd5Sql = $md5Fichier.$extension;
                    
                    // creation d'une miniature
                    App::import('Vendor', 'miniature', array('file' => 'miniature.php'));
                   
                    thumbnails::ResizeImage("../webroot/img/photos/".$md5Fichier.$extension,"../webroot/img/photos/miniature/thumb_".$md5Fichier.$extension,50,50);
                }
                
                
                unlink($dossier.$fichier);
                preg_match("#(.+)\.[a-z0-9]+#isU",$fichier,$regs);
                $fichierNom = $regs[1];
                
                $this -> data = array(
                    "Mesphoto" => array(
                        "fichier" => $fichierMd5Sql,
                        "nom" => $fichierNom,
                        "date" => date('c'),
                        "utilisateur_id" => $utilisateur["id"]
                    )
                    
                    
                );
                
                $this -> Mesphoto -> create();
                $this -> Mesphoto -> save($this -> data);
                
                $this -> redirect(array("controller" => "mesphotos","action" => "index"));
                
            } else {
              
                $this -> Session -> setFlash("Echec de l'upload !","erreur");
                $this -> redirect(array("controller" => "mesphotos","action" => "index"));
                
            }
            
        } else {
            
            $this -> Session -> setFlash($erreur,"erreur");
            $this -> redirect(array("controller" => "mesphotos","action" => "index"));
            
        }

        
    }
    
    function diaporama(){
        
        $utilisateur = $this -> Session -> read('Auth.Utilisateur');
        
        $fichier = $this -> Mesphoto -> find("all",array(
            'conditions' => array(
                "Mesphoto.utilisateur_id" => $utilisateur["id"]
            ),
            'fields' => "Mesphoto.fichier",
            'order' => "Mesphoto.date DESC"
        ));
        
        $this -> set('photo', $fichier);
        
        
    }        
        
        
        
    
    
}

?>